object DM: TDM
  OldCreateOrder = False
  OnCreate = DataModuleCreate
  Height = 567
  Width = 776
  object FDConexao: TFDConnection
    Params.Strings = (
      'Database=gestao'
      'User_Name=root'
      'Server=localhost'
      'DriverID=MySQL')
    Connected = True
    LoginPrompt = False
    Left = 20
    Top = 5
  end
  object QConfiguraPermissao: TFDQuery
    Connection = FDConexao
    SQL.Strings = (
      'SELECT'
      '  PERMISSAO.Id,'
      '  PERMISSAO.Formulario_Id,'
      '  PERMISSAO.Usuario_Id,'
      '  PERMISSAO.Pesquisar,'
      '  PERMISSAO.Novo,'
      '  PERMISSAO.Excluir,'
      '  PERMISSAO.Cancelar,'
      '  PERMISSAO.Salvar,'
      '  PERMISSAO.Editar,'
      '  PERMISSAO.Visualizar,'
      '  FORMULARIO.Nome,'
      '  FORMULARIO.Titulo'
      'FROM'
      '  Permissao'
      
        '  LEFT JOIN Formulario ON Formulario.Id = Permissao.Formulario_I' +
        'd'
      'WHERE'
      '  Permissao.Usuario_Id = :Usuario_Id')
    Left = 697
    Top = 4
    ParamData = <
      item
        Name = 'USUARIO_ID'
        DataType = ftInteger
        ParamType = ptInput
        Value = Null
      end>
  end
  object dspConfiguraPermissao: TDataSetProvider
    DataSet = QConfiguraPermissao
    Options = [poIncFieldProps, poPropogateChanges, poUseQuoteChar]
    UpdateMode = upWhereKeyOnly
    Left = 697
    Top = 52
  end
  object cdsConfigurarPermissao: TClientDataSet
    Aggregates = <>
    AggregatesActive = True
    Params = <>
    ProviderName = 'dspConfiguraPermissao'
    Left = 697
    Top = 100
    object cdsConfigurarPermissaoIncremento: TAggregateField
      FieldName = 'Incremento'
      Active = True
      DisplayName = ''
      Expression = 'max(Id)'
    end
  end
  object QFormulario: TFDQuery
    Connection = FDConexao
    SQL.Strings = (
      'SELECT'
      '  Formulario.Id,'
      '  Formulario.Nome,'
      '  Formulario.Titulo'
      'FROM'
      '  Formulario'
      'ORDER BY 3'
      '')
    Left = 587
    Top = 4
  end
  object dspFormulario: TDataSetProvider
    DataSet = QFormulario
    Options = [poIncFieldProps, poPropogateChanges, poUseQuoteChar]
    UpdateMode = upWhereKeyOnly
    Left = 587
    Top = 52
  end
  object cdsFormulario: TClientDataSet
    Aggregates = <>
    AggregatesActive = True
    Params = <>
    ProviderName = 'dspFormulario'
    AfterPost = cdsFormularioAfterPost
    Left = 587
    Top = 100
    object cdsFormularioIncremento: TAggregateField
      FieldName = 'Incremento'
      Active = True
      DisplayName = ''
      Expression = 'MAX(Id)'
    end
  end
  object QLogin: TFDQuery
    Connection = FDConexao
    SQL.Strings = (
      'SELECT'
      '  Usuario.Id,'
      '  Usuario.Login'
      'FROM'
      '  Usuario'
      'WHERE'
      '  Usuario.Login = :Login AND'
      '  Usuario.Senha = :Senha')
    Left = 508
    Top = 3
    ParamData = <
      item
        Name = 'LOGIN'
        DataType = ftString
        ParamType = ptInput
        Size = 100
        Value = Null
      end
      item
        Name = 'SENHA'
        DataType = ftString
        ParamType = ptInput
        Size = 100
        Value = Null
      end>
  end
  object QPesquisa: TFDQuery
    Connection = FDConexao
    Left = 699
    Top = 168
  end
  object dspPesquisa: TDataSetProvider
    DataSet = QPesquisa
    Options = [poAllowCommandText, poUseQuoteChar]
    Left = 699
    Top = 216
  end
  object cdsPesquisa: TClientDataSet
    Aggregates = <>
    Params = <>
    ProviderName = 'dspPesquisa'
    Left = 699
    Top = 264
  end
  object FDGUIxWaitCursor: TFDGUIxWaitCursor
    Provider = 'Forms'
    Left = 242
    Top = 5
  end
  object QCadLocalidade: TFDQuery
    AfterOpen = QCadLocalidadeAfterOpen
    Connection = FDConexao
    SQL.Strings = (
      'SELECT'
      '  Localidade.Id,'
      '  Localidade.Nome,'
      '  Localidade.UF,'
      '  0 AS pId'
      'FROM'
      '  Localidade'
      'WHERE'
      '  Localidade.Id = :Id')
    Left = 38
    Top = 79
    ParamData = <
      item
        Position = 1
        Name = 'ID'
        DataType = ftInteger
        ParamType = ptInput
      end>
  end
  object FDPhysMySQLDriverLink: TFDPhysMySQLDriverLink
    Left = 130
    Top = 5
  end
  object QCadUsuario: TFDQuery
    AfterOpen = QCadUsuarioAfterOpen
    Connection = FDConexao
    SQL.Strings = (
      'SELECT'
      '  Usuario.Id,'
      '  Usuario.Login,'
      '  Usuario.Senha,'
      '  0 AS pId'
      'FROM'
      '  Usuario'
      'WHERE'
      '  Usuario.Id = :Id')
    Left = 38
    Top = 129
    ParamData = <
      item
        Position = 1
        Name = 'ID'
        DataType = ftInteger
        ParamType = ptInput
      end>
  end
  object QCadPessoa: TFDQuery
    AfterOpen = QCadPessoaAfterOpen
    Connection = FDConexao
    SQL.Strings = (
      'SELECT'
      '  Pessoa.Id,'
      '  Pessoa.Nome,'
      '  Pessoa.NomeUsual,'
      '  Pessoa.Contato,'
      '  Pessoa.CNPJ_CPF,'
      '  Pessoa.IE_RG,'
      '  Pessoa.Rua,'
      '  Pessoa.Numero,'
      '  Pessoa.Bairro,'
      '  Pessoa.CEP,'
      '  Pessoa.Localidade_Id,'
      '  Localidade.Nome AS Localidade_Nome,'
      '  Localidade.UF AS Localidade_UF,'
      '  Pessoa.Fone1,'
      '  Pessoa.Fone2,'
      '  Pessoa.Fone3,'
      '  Pessoa.Cliente,'
      '  Pessoa.Vendedor,'
      '  Pessoa.Fornecedor,'
      '  0 AS pId'
      'FROM'
      '  Pessoa'
      '  LEFT JOIN Localidade ON Localidade.Id = Pessoa.Localidade_Id'
      'WHERE '
      '  Pessoa.Id = :Id  ')
    Left = 38
    Top = 179
    ParamData = <
      item
        Position = 1
        Name = 'ID'
        DataType = ftInteger
        ParamType = ptInput
      end>
  end
  object QCadProduto: TFDQuery
    AfterOpen = QCadProdutoAfterOpen
    Connection = FDConexao
    SQL.Strings = (
      'SELECT '
      '  Produto.Id,'
      '  Produto.Codigo,'
      '  Produto.Descricao,'
      '  Produto.Comissao,'
      '  0 AS pId'
      'FROM'
      '  Produto'
      'WHERE '
      '  Produto.Id = :Id  ')
    Left = 37
    Top = 239
    ParamData = <
      item
        Position = 1
        Name = 'ID'
        DataType = ftInteger
        ParamType = ptInput
      end>
  end
  object QCadProdutoIndustria: TFDQuery
    AfterOpen = QCadProdutoIndustriaAfterOpen
    MasterSource = dtsCadProduto
    MasterFields = 'Id'
    DetailFields = 'Produto_Id'
    Connection = FDConexao
    FetchOptions.AssignedValues = [evCache]
    FetchOptions.Cache = [fiBlobs, fiMeta]
    SQL.Strings = (
      'SELECT'
      ' ProdutoIndustria.Id,'
      ' ProdutoIndustria.Produto_Id,'
      ' ProdutoIndustria.IndustriaMarca_Id,'
      ' IndustriaMarca.Descricao,'
      ' 0 AS pId'
      'FROM'
      '  ProdutoIndustria'
      '  JOIN Produto ON Produto.Id = ProdutoIndustria.Produto_Id'
      
        '  JOIN IndustriaMarca ON IndustriaMarca.Id = ProdutoIndustria.In' +
        'dustriaMarca_Id'
      'WHERE'
      '  ProdutoIndustria.Produto_Id = :Id    ')
    Left = 112
    Top = 294
    ParamData = <
      item
        Position = 1
        Name = 'ID'
        DataType = ftAutoInc
        ParamType = ptInput
        Size = 4
        Value = Null
      end>
  end
  object dtsCadProduto: TDataSource
    DataSet = QCadProduto
    Left = 112
    Top = 240
  end
  object QCadProdutoReferencia: TFDQuery
    AfterOpen = QCadProdutoReferenciaAfterOpen
    MasterSource = dtsCadProdutoIndustria
    MasterFields = 'Id'
    DetailFields = 'ProdutoIndustria_Id'
    Connection = FDConexao
    FetchOptions.AssignedValues = [evCache]
    FetchOptions.Cache = [fiBlobs, fiMeta]
    SQL.Strings = (
      ''
      'SELECT'
      '  ProdutoReferencia.Id,'
      '  ProdutoReferencia.ProdutoIndustria_Id,'
      '  produtoReferencia.Referencia,'
      '  ProdutoReferencia.Descricao,'
      '  ProdutoReferencia.Estoque,'
      '  ProdutoReferencia.PCusto,'
      '  ProdutoReferencia.PVenda,'
      '  0 as pId'
      'FROM'
      '  ProdutoReferencia '
      
        '  JOIN ProdutoIndustria ON ProdutoIndustria.Id = ProdutoReferenc' +
        'ia.ProdutoIndustria_Id'
      'WHERE'
      '  ProdutoReferencia.ProdutoIndustria_Id = :Id')
    Left = 112
    Top = 399
    ParamData = <
      item
        Position = 1
        Name = 'ID'
        DataType = ftAutoInc
        ParamType = ptInput
        Size = 4
        Value = Null
      end>
  end
  object dtsCadProdutoIndustria: TDataSource
    DataSet = QCadProdutoIndustria
    Left = 112
    Top = 345
  end
  object QPedido: TFDQuery
    AfterOpen = QPedidoAfterOpen
    Connection = FDConexao
    SQL.Strings = (
      'SELECT'
      '  Pedido.Id,'
      '  Pedido.DataRegistro,'
      '  Pedido.DataLancamento,'
      '  Pedido.DataEntrega,'
      '  Pedido.Vendedor_Id,'
      '  Pedido.Confirmado,'
      '  Vendedor.Nome AS Vendedor_Nome,'
      '  Pedido.Cliente_Id,'
      '  Cliente.CNPJ_CPF AS Cliente_CNPJ_CPF,'
      '  Cliente.Nome AS Cliente_Nome,'
      '  Cliente.NomeUsual AS Cliente_NomeUsual,'
      '  Pedido.Observacao,'
      
        '  (SELECT (SUM(PedidoItem.Quantidade * PedidoItem.ValorUn) - Ped' +
        'ido.Desconto)'
      
        '    FROM PedidoItem WHERE PedidoItem.Pedido_Id = Pedido.Id) AS T' +
        'otalPedido,'
      
        '  (SELECT SUM(((((PedidoItem.ValorUn * PedidoItem.Quantidade) - ' +
        'Pedido.Desconto) / 100) * PedidoItem.Comissao)) '
      
        '    FROM PedidoItem WHERE PedidoItem.Pedido_Id = Pedido.Id) AS T' +
        'otalValorComissao,  '
      
        '  Round((((SELECT TotalValorComissao) * 100) / (SELECT TotalPedi' +
        'do)),2) AS TotalComissao,'
      '  Pedido.Desconto,'
      '  0 as pId'
      'FROM'
      '  Pedido'
      
        '  JOIN Pessoa AS Vendedor ON Vendedor.Id = Pedido.Vendedor_Id AN' +
        'D Vendedor.Vendedor = "T"'
      
        '  JOIN Pessoa AS Cliente ON Cliente.Id = Pedido.Cliente_Id AND C' +
        'liente.Cliente = "T"  '
      'WHERE'
      '  Pedido.Id = :Id')
    Left = 212
    Top = 241
    ParamData = <
      item
        Position = 1
        Name = 'ID'
        DataType = ftInteger
        ParamType = ptInput
        Value = Null
      end>
  end
  object QPedidoItem: TFDQuery
    AfterOpen = QPedidoItemAfterOpen
    MasterSource = dtsPedido
    MasterFields = 'Id'
    DetailFields = 'Pedido_Id'
    Connection = FDConexao
    FetchOptions.AssignedValues = [evCache]
    FetchOptions.Cache = [fiBlobs, fiMeta]
    SQL.Strings = (
      ''
      'SELECT'
      '  PedidoItem.Id,'
      '  PedidoItem.Pedido_Id,'
      '  PedidoItem.ProdutoReferencia_Id,'
      '  Produto.Codigo AS Produto_Codigo,'
      '  Produto.Descricao AS Produto_Descricao,'
      '  IndustriaMarca.Descricao AS IndustriaMarca_Descricao,'
      '  ProdutoReferencia.Referencia AS ProdutoReferencia_Referencia,'
      '  ProdutoReferencia.Descricao AS ProdutoReferencia_Descricao,'
      '  PedidoItem.Quantidade,'
      '  PedidoItem.ValorUn,'
      '  (PedidoItem.ValorUn * PedidoItem.Quantidade) AS TotalProduto, '
      '  PedidoItem.Comissao,'
      
        '  (((PedidoItem.ValorUn * PedidoItem.Quantidade) / 100) * Pedido' +
        'Item.Comissao) AS ValorComissao,'
      '  0 AS pId'
      'FROM'
      '  PedidoItem'
      
        '  JOIN ProdutoReferencia ON ProdutoReferencia.Id = PedidoItem.Pr' +
        'odutoReferencia_Id'
      
        '  JOIN ProdutoIndustria ON ProdutoIndustria.Id = ProdutoReferenc' +
        'ia.ProdutoIndustria_Id'
      
        '  JOIN IndustriaMarca ON IndustriaMarca.Id = ProdutoIndustria.In' +
        'dustriaMarca_Id'
      '  JOIN Produto ON Produto.Id = ProdutoIndustria.Produto_Id'
      'WHERE'
      '  PedidoItem.Pedido_Id = :Id')
    Left = 267
    Top = 296
    ParamData = <
      item
        Position = 1
        Name = 'ID'
        DataType = ftAutoInc
        ParamType = ptInput
        Size = 4
        Value = Null
      end>
  end
  object dtsPedido: TDataSource
    DataSet = QPedido
    Left = 267
    Top = 242
  end
  object QCadIndustriaMarca: TFDQuery
    AfterOpen = QCadIndustriaMarcaAfterOpen
    Connection = FDConexao
    SQL.Strings = (
      'SELECT'
      '  IndustriaMarca.Id,'
      '  IndustriaMarca.Descricao,'
      '  0 AS pId'
      'FROM'
      '  IndustriaMarca'
      'WHERE'
      '  IndustriaMarca.Id = :Id')
    Left = 133
    Top = 80
    ParamData = <
      item
        Position = 1
        Name = 'ID'
        DataType = ftInteger
        ParamType = ptInput
        Value = Null
      end>
  end
  object QCadEmpresa: TFDQuery
    AfterOpen = QCadEmpresaAfterOpen
    Connection = FDConexao
    SQL.Strings = (
      'SELECT'
      '  E.Id,'
      '  E.RazaoSocial,'
      '  E.NomeFantasia,'
      '  E.Contato,'
      '  E.CNPJ,'
      '  E.IE,'
      '  E.Rua,'
      '  E.Numero,'
      '  E.Bairro,'
      '  E.CEP,'
      '  E.Localidade_Id,'
      '  Localidade.Nome AS Localidade_Nome,'
      '  Localidade.UF AS Localidade_UF,'
      '  E.Fone1,'
      '  E.Email,'
      '  0 AS pId'
      'FROM Empresa AS E'
      '  LEFT JOIN Localidade ON Localidade.Id = E.Localidade_Id'
      'WHERE E.Id = :Id  ')
    Left = 272
    Top = 104
    ParamData = <
      item
        Name = 'ID'
        DataType = ftInteger
        ParamType = ptInput
        Value = Null
      end>
  end
  object QParamSistema: TFDQuery
    Connection = FDConexao
    SQL.Strings = (
      'SELECT * FROM ParamSistema'
      'ORDER BY Campo')
    Left = 376
    Top = 48
  end
end
